﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace A92流程控制_循环
{
    class Program
    {
        static void Main1(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(i + " hello");
            }
        }
        //输出[50-100]的所有数字
        static void Main2(string[] args)
        {
            for (int i = 50; i < 101; i++)
            {
                Console.WriteLine(i);
            }
        }
        //求[0-100]的累加和
        static void Main3(string[] args)
        {
            //求和必先定义一个变量 来装累加和
            int sum = 0;
            for (int i = 0; i <= 100; i++)
            {
                sum += i;
            }
            Console.WriteLine(sum);
        }
        //求[0-100]的偶数累加和
        static void Main4(string[] args)
        {
            int sum = 0;
            for (int i = 0; i <= 100; i++)
            {
                if (i % 2 == 0)
                {
                    sum += i;
                }
            }
            Console.WriteLine(sum);
        }
        //100块做生意 每天赚30%  60天后你有多少钱?
        static void Main5(string[] args)
        {
            double money = 100;
            for (int i = 1; i <= 60; i++)
            {
                money = money * 1.3f;
            }
            Console.WriteLine(money);
        }

        //输出 两位  数字组合
        static void Main6(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    Console.WriteLine("{0}{1}", i, j);
                }
            }
        }
        //百钱百鸡
        //公鸡 5文钱1只
        //母鸡 3文钱1只
        //鸡仔 3只1文钱
        static void Main7(string[] args)
        {
            for (int i = 0; i < 21; i++)//i表示公鸡的数量
            {
                for (int j = 0; j < 34; j++)//j表示母鸡的数量
                {
                    int k = 100 - j - i;//k鸡仔的数量
                    if (i * 5 + j * 3 + k / 3 == 100 && k % 3 == 0)
                    {
                        Console.WriteLine("公鸡{0} ,母鸡{1},记载{2}", i, j, k);
                    }

                    #region 之前的做法
                    /*
                  for (int k = 0; k < 101; k+=3) //k表示鸡仔的数量
                  {
                      if (i+j+k==100 && i*5+j*3+k/3==100)
                      {
                          Console.WriteLine("公鸡{0} ,母鸡{1},记载{2}", i, j, k);
                      }
                  }
                  */
                    #endregion
                }
            }
        }

        //whie循环
        static void Main8(string[] args)
        {
            int sum = 0;//存相加和
            int i = 0;//i从0变到100
            while (i <= 100)
            {
                sum += i;
                i++;
            }
            Console.WriteLine(sum);
        }

        //while 案例   100块钱 每天赚30%  多少天能赚到1个亿
        static void Main9(string[] args)
        {
            double money = 100; //钱
            int day = 1;//天
            while (true)
            {
                money = money * 1.3;
                day++;
                if (money> 100000000)
                {
                    break;
                }
            }
            Console.WriteLine(day);//54
        }
        //do while
        static void Main10(string[] args)
        {
            double money = 100;
            int day = 1;
            do
            {
                money *= 1.3;
                day++;
            }
            while (money<100000000);
            Console.WriteLine(day);
        }
        //关键字  continue  跳过本次循环继续下次循环
        static void Main11(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                if (i==5)
                {
                    continue;
                }
                Console.WriteLine(i);
            }
        }
        //关键字 break 结束整个循环
        static void Main12(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                if (i == 5)
                {
                    break;
                }
                Console.WriteLine(i);
            }
            Console.WriteLine("OK");
        }
        // return  返回 (退出)整个方法
        static void Main13(string[] args)
        { 
            for (int i = 0; i < 10; i++)
            {
                if (i == 5)
                {
                    return;
                }
                Console.WriteLine(i);
            }
            Console.WriteLine("OK");
        }
        //回顾
        static void Main14(string[] args)
        {
            /*流程控制
             *      判断
             *          if
             *          switch
             *      循环
             *          for
             *          while
             *          do while
             *      关键字
             *          continue
             *          break
             *          return
             */ 
        }

        //作业讲解  鸡兔同笼
        static void Main15(string[] args)
        {
            //今有雉兔同笼，上有三十五头，下有九十四足，问雉兔各几何？ 
            for (int i = 0; i <= 35; i++) //i 鸡的数量
            {
                int j = 35 - i;//j 兔的数量
                if (i*2+j*4==94)
                {
                    Console.WriteLine($"鸡{i}只兔子{j}只");
                }
            }
        }
        //三角星星
        static void Main16(string[] args)
        {
            for (int i = 1; i <= 5; i++)//i 表示第几行
            {
                for (int j = 0; j < i; j++)//内层循环 输出1行
                {
                    Console.Write("*");
                }
                Console.Write("\n");   // Console.WriteLine();//换行
            }
        }
        //等腰星星
        static void Main(string[] args)
        {
            int n = 30;
            for (int i = 1; i <= n; i++)
            {
                for (int j = 0; j < n - i; j++)  //先输出空格
                {
                    Console.Write(" ");
                }
                for (int j = 0; j < 2*i - 1; j++) //再输出星星
                {
                    Console.Write("*");
                }
                Console.WriteLine();//换行
            }
        }
        //定义  总行数 n  第几行 i
        //空格数    n-i
        //星星数    2i-1


            //     * //5空格1星星
            //    *** //4空格3星星
            //   ***** //3空格5星星
            //  *******
            // *********
            //*********** 
    }
}
